home *** CD-ROM | disk | FTP | other *** search
/ CBM Funet Archive / cbm-funet-archive-2003.iso / cbm / c64 / programming / atbasic.lzh / atbasic / src / SBT 5.3 .S 4,P (.txt) < prev    next >
Encoding:
Commodore BASIC  |  1996-03-04  |  6.6 KB  |  169 lines

  1. 100 ;:;******** list im programm:;
  2. 110 ;**** einsprung trace
  3. 120 ltrace jsr wshift:lda $9a:pha
  4. 130 lda #3:sta $9a:lda $c7:pha:lda $d4:pha:lda cspalte
  5. 140 pha :lda czeile:pha:lda cadr:pha:lda cadr+1:pha:lda $d5:pha
  6. 150 ldx # 0:ldy #0:sty $c7:clc:jsr $fff0
  7. 170 jsr l9:pla:sta $d5:pla:sta cadr+1:pla:sta cadr
  8. 180 pla:sta czeile:pla:sta cspalte
  9. 190 pla:sta $d4:pla:sta $c7:pla :sta $9a
  10. 200 rts
  11. 210 ;:;******** zeile mit rev (fehler) listen:;
  12. 220 l9 lda znr:sta intadr:lda znr+1
  13. 230 sta intadr+1
  14. 240 ;**** einsprung find (14/15=znr)
  15. 250 lfind jsr adrzei:bcc l15;zeile nicht gefunden
  16. 260 lda intadr+1:ldx intadr
  17. 270 ;**** einsprung list (a/x=znr,$5f/60=adr)
  18. 280 llist jsr adrout:lda zeibas:sec:sbc flag5f:tay
  19. 290 lda zeibas+1:sbc flag5f+1:bne l09a
  20. 300 tya:cmp #4:bcs l09
  21. 310 l09a lda #3:l09 sta flagff:ldy # 3
  22. 320 ;**** einsprung dump ($5f/60=adr-1,flaga b7=1,y=0,flagff=0)
  23. 330 ldump sty flag49:lda #0:sta hklist
  24. 335 lda #4:jsr setfla
  25. 340 lda # 32:l10 ldy flag49:and # 127
  26. 350 l11 jsr basout:cmp # 34:bne l12
  27. 360 lda hklist:eor # 255:sta hklist
  28. 370 l12 iny :beq l15:cpy flagff
  29. 380 bne l13:lda # 18:sta $c7:lda #1:sta flagff
  30. 390 bne l14:l13 lda flagff:cmp #1:bne l14:inc flagff:lda # 0
  31. 400 sta $c7:l14 lda (flag5f),y:beq l15
  32. 410 l16 bmi l015
  33. 420 cmp #":":bne l11:bit flaga:bpl l11
  34. 430 pla:pla:l15 lda #255-4:jsr clrfla:lda #0:rts
  35. 440 l015 cmp #255:beq l11:bit hklist:bmi l11
  36. 450 cmp #firscode:bcs nnlist
  37. 460 sec:sbc #127:tax:sty flag49:ldy # 255:l17 dex
  38. 470 beq l19:l18 iny :lda oldasc,y
  39. 480 bpl l18:bmi l17:l19 iny
  40. 490 lda oldasc,y:bmi l10:jsr basout
  41. 500 bne l19
  42. 510 nnlist sec:sbc #firscode-1:tax
  43. 520 sty flag49:ldy #$ff:n1 dex:beq n3:n2 iny:lda asctab,y
  44. 530 bpl n2:bmi n1:n3 iny:lda asctab,y
  45. 540 bpl l010:jmp l10:l010 jsr basout:bne n3
  46. 550 ;:;******** trace:;
  47. 560 trace beq tron:cmp #codoff:beq trok:jmp syntax
  48. 570 trok lda #255-64:jsr clrfl:jmp chrget
  49. 580 tron lda #64:jsr setfl:rts
  50. 590 ;**** wait shift/cbm/ctrl
  51. 600 wshift jsr getstp:beq wsbr:lda flagshft:beq wshift:cmp #2:bne ws2
  52. 610 ws1 jsr getstp:beq wsbr:lda flagshft:bne ws1
  53. 620 ws2 rts:wsbr pla:pla:jmp $a82f
  54. 699 ;:;******** key:;
  55. 700 key bcc keyd1:bne key1x:jmp keydisp
  56. 701 beq keydisp
  57. 705 key1x cmp #codoff:beq keyoff
  58. 710 cmp #$91;code von 'on':beq keyon:jmp syntax
  59. 720 keyon lda #32:jsr setfl:bne keo
  60. 730 keyoff lda #255-32:jsr clrfl:keo jmp chrget:keyrts rts:keyd1 bcc keydef
  61. 740 keydisp lda #32:bit flag:beq keyrts
  62. 750 lda #0:sta flagc8
  63. 760 keyout lda #13:jsr bsout
  64. 765 lda #"k":jsr bsout:lda #"e":jsr bsout:lda #"y":jsr bsout
  65. 770 ldx flagc8:inx:lda #0:jsr adrout:lda #",":jsr bsout
  66. 780 lda #$22;hochkomma:jsr bsout:lda #4:jsr setfla
  67. 790 lda flagc8:asl:asl:asl:adc flagc8:adc flagc8
  68. 791 ldx #10:tay:ke1 lda keytext,y:beq key1
  69. 800 jsr bsout
  70. 810 iny:dex:bne ke1:key1 lda #255-4:jsr clrfla:lda #34:jsr bsout
  71. 815 inc flagc8:lda flagc8:cmp #8:bcc keyout
  72. 820 lda #13:jmp bsout
  73. 830 keydef jsr getbyt:dex:cpx #8:bcc ke3:keill jmp illquant
  74. 840 ke3 txa:asl; * lenkey:sta flagc8:asl:asl:adc flagc8
  75. 845 sta flagc8:jsr prkomma:jsr $ad9e:jsr $b6a3
  76. 850 cmp #11;lenkey+1:bcc ke4a:jmp strtola
  77. 855 ke4a sta flagfd
  78. 860 ke4 ldx flagc8:tay:beq kee2:ldy #0
  79. 870 ke5 lda (flag22),y
  80. 877 sta keytext,x
  81. 880 inx:iny:cpy flagfd:bne ke5
  82. 885 cpy #10;lenkey:bcs kee1:kee2 lda #0:sta keytext,x:kee1 rts
  83. 1000 ;:;******** basic:;
  84. 1010 basic jsr $fd15:jsr $e453:pla:pla:jmp $a7ae
  85. 1015 ;:;******** exit:;
  86. 1020 exit ldx #$ff:sei:txs:cld:jmp $fcef
  87. 1025 ;:;******** screen:;
  88. 1026 screen .if v&1:jmp syntax:.goto 1099
  89. 1027 beq schok:jmp syntax
  90. 1028 schok lda 1:pha:lda #54:sta 1
  91. 1029 lda 648:sta flagff:lda #$a0:sta flagfd
  92. 1030 ldy #1:sty flagfc:dey:sty flagfe:jsr scrch
  93. 1035 lda #$d8:sta flagff:jsr scrch
  94. 1040 ldx #24:sch1 lda $d9,x:tay:lda $a801,x:sta $d9,x:tya:sta $a801,x
  95. 1042 dex:bpl sch1:pla:sta 1:lda #0:sta $d3:sta $d6:sta $d1:lda 648:sta $d2
  96. 1043 lda #39:ldy $da:bmi scheine:lda #79:scheine sta $d5:
  97. 1044 bit $9d:bmi schdirm:rts
  98. 1045 schdirm pla:pla:jmp $a47b
  99. 1050 scrch ldx #4:ldy #0
  100. 1052 sch2 lda (flagfc),y:pha:lda (flagfe),y:sta (flagfc),y:pla:sta (flagfe),y
  101. 1054 iny:bne sch2:inc flagfd:inc flagff
  102. 1056 dex:bne sch2:rts
  103. 1099 ;:;******** list:;
  104. 1100 list pha:lda #3:sta devadr:pla
  105. 1101 cmp #"#";kreuz:bne li1a:jsr chrget:jsr getbyt:stx devadr
  106. 1102 lda #0:sta lenfnam:sta secadr:beq li1c
  107. 1103 li1a cmp #34;hochkomma:bne li1b
  108. 1104 jsr e12l:lda #1:sta secadr:bne li1b
  109. 1106 li1c jsr chr(NULL)t:beq li1b:jsr prkomma
  110. 1118 li1b jsr chr(NULL)t:jsr parlist:lda intadr:ora intadr+1:bne li01
  111. 1119 lda #$ff:sta intadr:sta intadr+1
  112. 1120 li01 lda devadr:cmp #3:beq li1:lda #14:sta lfn:jsr open:ldx #14:jsr ckout
  113. 1121 li1 ldy #1:sty $0f:lda (flag5f),y:beq liend
  114. 1130 lda $91:cmp #$7f:beq liend:jsr $aad7:iny:lda (flag5f),y
  115. 1140 tax:iny:lda (flag5f),y:cmp intadr+1:bne li2:cpx intadr
  116. 1150 beq li3:li2 bcs liend:li3 jsr llist:tay
  117. 1160 lda (flag5f),y:tax:iny:lda (flag5f),y
  118. 1170 stx flag5f:sta flag5f+1:jmp li1
  119. 1180 liend lda devadr:cmp #3:bne lie1:rts:lie1 lda #13;cr:jsr bsout
  120. 1182 jsr clrch:lda #14:jmp close;jmp $e386
  121. 1200 ;:;******** set + time/alarm:;
  122. 1210 set cmp #codtime:beq settime:cmp #codalarm:beq setalarm
  123. 1220 jmp syntax
  124. 1221 aloff lda flag:and #127:aal1 sta flag:jmp chrget
  125. 1222 alon lda flag:ora #128:bne aal1
  126. 1230 setalarm lda #128:jsr setfl:lda #%10000100:sta ciati+13
  127. 1235 lda ciati+15:ora #128;alarm-bit setzten:bne set1
  128. 1240 settime lda ciati+15:and #127;fuer time vorbereiten
  129. 1250 set1 sta ciati+15:lda ciati+14:ora #128:sta ciati+14;50 hz triggern
  130. 1260 jsr chrget:cmp #codoff:beq aloff:cmp #codon:beq alon
  131. 1268 jsr $ad9e:jsr $b6a3:cmp #7:beq set2:jmp illquant
  132. 1270 set2 ldy #0:jsr sethour:jsr setmin:sta ciati+10:jsr setmin
  133. 1280 sta ciati+9:jsr setnib:sta ciati+8
  134. 1290 lda #0:sta ciati+13:rts
  135. 1300 sethour jsr setmin:sed:cmp #$13:bcc sethok
  136. 1310 sec:sbc #$12:ora #128
  137. 1320 sethok cld:sta ciati+11:lda #0:sta ciati+13:rts
  138. 1330 setmin jsr setnib:asl:asl:asl:asl:sta flagfb:jsr setnib
  139. 1340 ora flagfb:setmok rts
  140. 1350 setnib lda (flag22),y:iny:sec:sbc #"0"
  141. 1360 cmp #10:bcc setmok:jmp illquant
  142. 1400 time lda #7:jsr $b47d:ldy #0:jsr gethour:lda ciati+10:jsr getmin
  143. 1405 lda ciati+9:jsr getmin
  144. 1410 lda ciati+8:jsr getnib:jmp $b4ca
  145. 1420 gethour lda ciati+11:tax:and #$7f:cmp #$12:bne geth1
  146. 1430 txa:eor #$80:tax:geth1 txa
  147. 1435 bpl getmin:and #$7f:sed:clc:adc #$12:cld
  148. 1440 getmin pha:lsr:lsr:lsr:lsr:jsr getnib:pla
  149. 1450 getnib and #15:clc:adc #"0":sta ($62),y:iny:rts
  150. 1460 alarm bit flag:bpl alend
  151. 1461 lda 53280:pha:lda #6:sta 53280
  152. 1462 lda #<1000:sta $d400:lda #>1000:sta $d401
  153. 1464 lda #15:sta $d418:lda #%11110000:sta $d406:lda #0:sta $d405
  154. 1466 lda #%00100001:sta $d404
  155. 1470 al1 lda #0:sta $c6:sta 53280:jsr $ea87:lda #3:sta 53280
  156. 1475 cmp $0277:bne al1:lda #0:sta $d404:sta $d418:pla
  157. 1479 sta 53280
  158. 1480 alend jmp $ea7e
  159. 2000 if jsr $ad9e:jsr chr(NULL)t:cmp #$89
  160. 2005 beq if1:lda #$a7:jsr $aeff
  161. 2010 if1 lda $61:bne if2:jmp $a93b
  162. 2015 if2 jsr chr(NULL)t:bcs if3:jmp $a8a0
  163. 2030 if3 pla:pla:jsr chr(NULL)t:jmp l44+3
  164. 2100 ;:;******** colour:;
  165. 2110 colour cmp #",":beq col2:jsr getbyt:stx 53280:beq colrts
  166. 2115 col2 jsr prkomma:cmp #",":beq col1
  167. 2120 jsr getbyt:stx 53281:beq colrts:col1 jsr prkomma
  168. 2130 jsr getbyt:stx 646:colrts rts
  169.